﻿#pragma once


#include <string>
#include <functional>

typedef void *HANDLE;
class IpcServerBase
{
public:
    IpcServerBase(unsigned int pipe_size, const std::string &pipe_name);
    ~IpcServerBase();

    // 启动服务器, 客户端连接回调函数
    bool start(std::function<void(HANDLE)>&& onClientConnected);

    // 停止服务器
    void stop();


private:
    bool _running;           // 服务器运行标志
    std::string _pipe_name;  // 管道名称
    unsigned int _pipe_size; // 管道大小
};